In networked computing environments, one or more users may wish to view and edit data using multiple computing devices. A user may have access to a personal computer, a web server and a mobile device, and may wish to view and manipulate the same set of data from each device. One such scenario involves taking photographs using a mobile device, performing image editing on a personal computer and allowing other users to comment on the photographs via a web site.
In these scenarios, the shared data may be kept locally on each device and periodically synchronized. However, changes made on one device or by one user may conflict with those made by another device or user. In addition, devices may occasionally lose access to the network or go offline for periods of time. Accordingly, methods for synchronizing shared data may be complex and prone to errors or inconsistent behavior.